package bitArithmetic;
//190. 颠倒二进制位
// 参考  https://www.jianshu.com/p/3c995306c133
//TODO:不懂
public class basic190 {
    public int reverseBits(int n) {
        int result = 0;//结果
        // 对2取模，取出二进制最低位
        // 32位无符号整数,循环32次，不断获得二进制的高位，直至最高位
        for(int i = 0;i < 32;i++){
            result = (result << 1) + (n & 1); //等价于,(result *2)+(n % 2)
            n >>= 1; // n/2
        }
        return result;
    }

    public static void main(String[] args) {
        basic190 basic190 = new basic190();
        System.out.println(basic190.reverseBits(12));

    }
}
